import kirklin from '@kirklin/eslint-config'

export default kirklin(
  {
    unocss: true,
    formatters: {
      /**
       * 格式化CSS、LESS、SCSS文件，以及Vue中的`<style>`块
       * 默认情况下使用Prettier
       */
      css: true,
      /**
       * 格式化HTML文件
       * 默认情况下使用Prettier
       */
      html: true,
      /**
       * 格式化Markdown文件
       * 支持Prettier和dprint
       * 默认情况下使用Prettier
       */
      markdown: 'prettier'
    }
  },
  {
    files: ['**/*.vue'],
    rules: {
      'vue/singleline-html-element-content-newline': 'off',
      'vue/top-level-function': 'off',
      'vue/array-bracket-newline': ['error', 'consistent'],
      'vue/html-self-closing': [
        'error',
        {
          html: {
            void: 'always',
            normal: 'always',
            component: 'always'
          },
          svg: 'always',
          math: 'always'
        }
      ],
      'no-unused-vars': 'error', // 禁止未使用的变量
      'vue/return-in-computed-property': 'off',
      'vue/attributes-order': 'error',
      'vue/block-tag-newline': 'error',
      'vue/html-closing-bracket-newline': 'error',
      'vue/html-end-tags': 'error',
      'vue/multiline-html-element-content-newline': 'error',
      'vue/mustache-interpolation-spacing': 'error',
      'vue/v-on-event-hyphenation': 'error',
      'vue/v-on-style': 'error',
      'vue/v-slot-style': 'error',
      'vue/no-export-in-script-setup': 'error',
      'vue/no-v-for-template-key-on-child': 'error',
      'vue/no-async-in-computed-properties': 'error',
      'vue/no-duplicate-attributes': 'error'
    }
  },
  {
    rules: {
      'antfu/top-level-function': 'off',
      'style/comma-dangle': 'off',
      // 没有数据时不加要加逗号
      'comma-dangle': ['error', 'never'],
      'style/quote-props': 'off',
      'no-console': 'off', // 允许 console
      'antfu/if-newline': 'off', // 允许 一行一个 if
      'style/arrow-parens': 'off',
      'style/indent': 'off',
      'arrow-spacing': [2, { before: true, after: true }],
      'format/prettier': 'off'
    }
  }
)
